기타 제어문
✒️ 2025-05-14 20:47 내용 수정
- 반복문 안에서만 작성해야 한다. (루프(Loops))
- 기타 제어문이 포함된 코드 블럭에서 기타 제어문 밑에는 어떠한 코드도 올 수 없다.
1. continue
- 루프 내에서 해당 루프의 나머지 부분을 건너 뛰고, 다음 조건식으로 넘어갈 때 사용한다.
- 가장 가까운 반복문의 증감식으로 돌아간다.
- 증감식이 없다면 조건식으로 돌아간다.
package exam09;
public class ContinueExam {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
// 짝수만 더해보자
if ( i % 2 != 0) {
//System.out.println(i);
continue; // 홀수는 여기서 실행문 종료, 다시 for 조건식으로 이동
}
sum += i;
}
System.out.println(sum);
}
}
2. break
- 루프 내에서 반복문을 종료 시키고, 반복문 다음 위치한 명령문을 실행한다.
- break와 가장 가까운 반복문을 종료 시킨다.
- 루프 결과와 상관없이 루프를 벗어날 때 사용한다.
package exam09;
public class BreakExam {
public static void main(String[] args) {
int sum = 0;
while (true) { // 무한 루프가 된다
int val = (int)(Math.random() * 50) + 1;
if (val == 30) {
System.out.println("30! 종료");
break; // 반복문을 종료하고 다음 명령문 실행
}
sum += val; // val == 30 일 때 sum 에 val 이 더해지지 않는다
System.out.print(val + ", ");
}
System.out.println();
System.out.println(sum);
}
}
3. label
- 특정 반복문에 이름표를 붙여 두 개 이상의 반복을 제어할 수 있도록 하는 키워드 문법
- label은 항상 쌍으로 존재한다.
- label은 자신을 포함하고 있는 상위 개념에게만 붙일 수 있다.
- label로 인해 break가 루프 안에서 발동되면 label을 붙여준 반복문 전체를 벗어나고, 반복문 다음 명령문을 실행한다.
- label로 인해 continue가 루프 안에서 발동되면 label을 붙여준 위치로 돌아간다.
label: for(int i = 0; i < 3; i++) {
for(int k = 0; k < 5; k++) {
if(k % 2 == 0) {
break label;
}
}
}